前面主要都在描述OS如何分配行程資源給procress,讓procress之間不要打架搶資源,現在主要來看看記憶體如何存放這些procress,也就是記憶體配置
記憶體分配方式
可以把記憶體想成一個圖書館那種層架書櫃,某些地方已經有放了書(procress),某幾層的中間還有空位,那接下來你要決定下一本書放哪,有3種方法
記憶體配置可能遇到的問題
解決方案
遇到問題後就要想辦法解決(或捨棄?),解決方式如下:
Multiple Base / Limit register set 多重基底限制暫存器
意思就像當書櫃沒有一個完成空間可以完整放進這本書,但他們零碎的空間加起來卻是放得下這本書的時候(外部碎裂),我就把我要放的這本書撕開,記住我從第幾頁開始撕,撕了幾頁,然後就可以完美放進書櫃了。
突然想到以前念書時候好像就是常常撕書為了把國語英文數學社會課本的某幾課塞進書包帶回家,因為全部帶整本太重XD
Compaction 壓縮
這個會比較像我們平常整理書櫃的作法,當位置夠但散在不同地方的時候,就會一"推"把所有架上的書緊密接在一起,將零碎的空間集結再一起來放書,但這個解決方法會限制Process皆需支援 Dynamic Binding,因為如果是靜態的這些Process就只能在他放的那個位置
分類會依照第一篇介紹的分類架構來進行
由於是將學習過程記錄下來,如果有任何錯誤歡迎糾正
以下參考連結在學習過程中覺得非常有幫助:
-Chapter3-作業系統-記憶體管理